/** @file mesh.hpp Triangle mesh utility */
#pragma once

class Mesh;
#include "core/geometry.hpp"
#include "core/matrix.hpp"
#include "core/triangle.hpp"

/** A triangle mesh */
class Mesh
{
public:

  /** The number of vertices */
  int nverts;

  /** The number of triangles */
  int ntris;

  /** The vertex array */
  Point* verts;

  /** The index array */
  int* inds;

  /** The list of triangles */
  Triangle* tris;

  /** Construct
   * @param nv number of vertices
   * @param nt number of triancles
   * @param vs vertices
   * @param ts triangles */
  Mesh(const int nv, const int nt, Point* vs, int* ts);

  /** Destroy */
  ~Mesh();

};
